package com.claimSettlement.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.claimSettlement.pojo.Case;
import com.claimSettlement.pojo.Worker;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 出险Mapper接口
 * 汤英杰
 */
public interface CaseMapper extends BaseMapper<Case> {

    /**
     * 修改案件处理
     * @param caseHandling 案件处理
     * @param caseId 报案编号
     * @return
     */
    int updCaseHandling(@Param("caseHandling") int caseHandling,@Param("caseState") int caseState,@Param("caseId") String caseId);

    /**
     * 添加报案信息
     * @param cases 报案对象
     * @return
     */
    int insertCase(Case cases);

    /**
     * 修改报案信息
     * @param cases
     * @return
     */
    int updateCase(Case cases);

    /**
     * 添加派工信息
     * @param caseId 报案编号
     * @param userId 员工编号
     * @return
     */
    int insertWorker(@Param("caseId") String caseId,@Param("userId") int userId,@Param("dispatchedWorkerEndTime") String dispatchedWorkerEndTime);

    /**
     * 根据派工工号查询案件处理不为注销，案件状态不为结案的出险信息
     * @param userId 派工工号
     * @return 集合
     */
    List<Case> getCaseByUserId(@Param("userId") int userId,@Param("shuzhi") int shuzhi,@Param("inbh") int inbh,@Param("endtime") int endtime);

    /**
     * 根据报案编号查询报案信息
     * @param caseId 报案编号
     * @return 报案信息
     */
    Case getCaseBycaseId(String caseId);
    /*
     * 查询所有
     * @return
     */
    List<Case> getCaseAll();

    /**
     * 根据编号查询
     * @param caseId
     * @return
     */
    Case getCaseOne(@Param("caseId") String caseId);

    /**
     * 模糊查询
     * @param caseId 保单号
     * @param recognizeeName 被保人
     * @param plateNumber 车牌号
     * @return
     */
    List<Case> getCaseId(@Param("caseId") String caseId,@Param("recognizeeName") String recognizeeName,@Param("plateNumber") String plateNumber);

    /**
     * 派工信息
     * @return
     */
    List<Worker> getWorkerAll();

    /**
     * 流水号+1
     * @return
     */
    int updateNum();

    /**
     * 未注销的出险信息
     * @return
     */
    List<Case> getCaseChul();

    /**
     * 出险信息流水号
     * @return
     */
    String getLius2();

    /**
     * 查询出险编号是否在查勘表中存在
     * @param caseId 出险编号
     * @return 存在返回大于0，不存在返回0
     */
    int getSurveyCountCaseId(String caseId);

    /**
     * 根据被保人编号和车牌号查找出险记录次数
     * @param recognizeeId
     * @param plateNumber
     * @return
     */
    int getCaseCount(@Param("recognizeeId") String recognizeeId,@Param("plateNumber") String plateNumber);

}
